﻿using System.ServiceModel;
using KillBill.Business.Entities;
using KillBill.Business.Entities.ListEntities;
using KillBill.Services.DTO;

namespace KillBill.Services.Modules.Administration.IServices
{
    [ServiceContract]
    public interface IAdministrationService
    {
        [OperationContract]
        CustomerList FindCustomerByLastName(string lastName, string sessionId);
        [OperationContract]
        CustomerList GetCustomers(string sessionId);
        [OperationContract]
        CustomerList FindCustomers(string value, string sessionId);
        [OperationContract]
        KillBillDTO AddCustomer(Customer customer, string sessionId);
        [OperationContract]
        Customer UpdateCustomer(Customer customer, string sessionId);
        [OperationContract]
        Customer FindCustomer(string customerId, string sessionId);
        [OperationContract]
        KillBillDTO DeleteCustomer(Customer customer, string sessionId);

        [OperationContract]
        EmployeeList GetEmployees(string sessionId);
        [OperationContract]
        EmployeeList FindEmployees(string value, string sessionId);
        [OperationContract]
        Employee FindEmployee(string employeeId, string sessionId);
        [OperationContract]
        KillBillDTO AddEmployee(Employee employee, string sessionId);
        [OperationContract]
        Employee UpdateEmployee(Employee employee, string sessionId);
        [OperationContract]
        KillBillDTO DeleteEmployee(Employee employee, string sessionId);

        [OperationContract]
        Parameter UpdateParameter(Parameter parameter, string sessionId);

        //[OperationContract]
        //KillBillListDTO<EmployeeRole> GetAplicactionRoleList(string sessionId);
        [OperationContract]
        EmployeeRole AddEmployeeRole(EmployeeRole employeeRole, string sessionId);
        [OperationContract]
        EmployeeRole UpdateEmployeeRole(EmployeeRole employeeRole, string sessionId);
        [OperationContract]
        KillBillDTO DeleteEmployeeRole(EmployeeRole employeeRole, string sessionId);

        [OperationContract]
        EmployeeRoleList GetAplicactionRoleList(string sessionId);
    }
}
